﻿<?xml version="1.0" encoding="utf-8" ?>
<platform namespace="http://metalx.org/Amd/Amd64/Operators" xmlns="http://metalx.org/Platform">
	<processor>
		<operation name="AddRegisterToOperand8" value="00"/>
		<operation name="AddRegisterToOperand" value="01"/>
		<operation name="AddOperandToRegister8" value="02"/>
		<operation name="AddOperandToRegister" value="03"/>
		<operation name="AddImmediateToAL" value="04"/>
		<operation name="AddImmediateToAX" value="05"/>
		<operation name="PushESToStack" value="06"/>
		<operation name="PullESFromStack" value="07"/>
		<operation name="OrOperandWithRegister8" value="08"/>
		<operation name="OrOperandWithRegister" value="09"/>
		<operation name="OrRegisterWithOperand8" value="0A"/>
		<operation name="OrRegisterWithOperand" value="0B"/>
		<operation name="OrALWithImmediate" value="0C"/>
		<operation name="OrAXWithImmediate" value="0D"/>
		<operation name="PushCSToStack" value="0E"/>
		<operation name="AddRegisterToOperandWithCarry8" value="10"/>
		<operation name="AddRegisterToOperandWithCarry" value="11"/>
		<operation name="AddOperandToRegisterWithCarry8" value="12"/>
		<operation name="AddOperandToRegisterWithCarry" value="13"/>
		<operation name="AddImmediateToALWithCarry" value="14"/>
		<operation name="AddImmediateToAXWithCarry" value="15"/>
		<operation name="PushSSToStack" value="16"/>
		<operation name="PullSSFromStack" value="17"/>
		<operation name="SubtractRegisterFromOperandWithBorrow8" value="18"/>
		<operation name="SubtractRegisterFromOperandWithBorrow" value="19"/>
		<operation name="SubtractOperandFromRegisterWithBorrow8" value="1A"/>
		<operation name="SubtractOperandFromRegisterWithBorrow" value="1B"/>
		<operation name="SubtractImmediateFromALWithBorrow" value="1C"/>
		<operation name="SubtractImmediateFromAXWithBorrow" value="1D"/>
		<operation name="PushDSToStack" value="1E"/>
		<operation name="PullDSFromStack" value="1F"/>
		<operation name="AndOperandWithRegister8" value="20"/>
		<operation name="AndOperandWithRegister" value="21"/>
		<operation name="AndRegisterWithOperand8" value="22"/>
		<operation name="AndRegisterWithOperand" value="23"/>
		<operation name="AndALWithImmediate" value="24"/>
		<operation name="AndAXWithImmediate" value="25"/>
		<operation name="SubtractRegisterFromOperand8" value="28"/>
		<operation name="SubtractRegisterFromOperand" value="29"/>
		<operation name="SubtractOperandFromRegister8" value="2A"/>
		<operation name="SubtractOperandFromRegister" value="2B"/>
		<operation name="SubtractImmediateFromAL" value="2C"/>
		<operation name="SubtractImmediateFromAX" value="2D"/>
		<operation name="ExclusiveOrOperandWithRegister8" value="30"/>
		<operation name="ExclusiveOrOperandWithRegister" value="31"/>
		<operation name="ExclusiveOrRegisterWithOperand8" value="32"/>
		<operation name="ExclusiveOrRegisterWithOperand" value="33"/>
		<operation name="ExclusiveOrALWithImmediate" value="34"/>
		<operation name="ExclusiveOrAXWithImmediate" value="35"/>
		<operation name="CompareOperandToRegister8" value="38"/>
		<operation name="CompareOperandToRegister" value="39"/>
		<operation name="CompareRegisterToOperand8" value="3A"/>
		<operation name="CompareRegisterToOperand" value="3B"/>
		<operation name="CompareALToImmediate" value="3C"/>
		<operation name="CompareAXToImmediate" value="3D"/>
		<!--<operation name="IncrementAX" value="40"/>
		<operation name="IncrementCX" value="41"/>
		<operation name="IncrementDX" value="42"/>
		<operation name="IncrementBX" value="43"/>
		<operation name="IncrementSP" value="44"/>
		<operation name="IncrementBP" value="45"/>
		<operation name="IncrementSI" value="46"/>
		<operation name="IncrementDI" value="47"/>
		<operation name="DecrementAX" value="48"/>
		<operation name="DecrementCX" value="49"/>
		<operation name="DecrementDX" value="4A"/>
		<operation name="DecrementBX" value="4B"/>
		<operation name="DecrementSP" value="4C"/>
		<operation name="DecrementBP" value="4D"/>
		<operation name="DecrementSI" value="4E"/>
		<operation name="DecrementDI" value="4F"/>-->
		<operation name="OperandDefault" value="40"/>
		<operation name="OperandDefaultBase" value="41"/>
		<operation name="OperandDefaultIndex" value="42"/>
		<operation name="OperandDefaultBaseIndex" value="43"/>
		<operation name="OperandDefaultRegister" value="44"/>
		<operation name="OperandDefaultRegisterBase" value="45"/>
		<operation name="OperandDefaultRegisterIndex" value="46"/>
		<operation name="OperandDefaultRegisterBaseIndex" value="47"/>
		<operation name="Operand64" value="48"/>
		<operation name="Operand64Base" value="49"/>
		<operation name="Operand64Index" value="4A"/>
		<operation name="Operand64BaseIndex" value="4B"/>
		<operation name="Operand64Register" value="4C"/>
		<operation name="Operand64RegisterBase" value="4D"/>
		<operation name="Operand64RegisterIndex" value="4E"/>
		<operation name="Operand64RegisterBaseIndex" value="4F"/>
		<operation name="PushAXToStack" value="50"/>
		<operation name="PushCXToStack" value="51"/>
		<operation name="PushDXToStack" value="52"/>
		<operation name="PushBXToStack" value="53"/>
		<operation name="PushSPToStack" value="54"/>
		<operation name="PushBPToStack" value="55"/>
		<operation name="PushSIToStack" value="56"/>
		<operation name="PushDIToStack" value="57"/>
		<operation name="PullAXFromStack" value="58"/>
		<operation name="PullCXFromStack" value="59"/>
		<operation name="PullDXFromStack" value="5A"/>
		<operation name="PullBXFromStack" value="5B"/>
		<operation name="PullSPFromStack" value="5C"/>
		<operation name="PullBPFromStack" value="5D"/>
		<operation name="PullSIFromStack" value="5E"/>
		<operation name="PullDIFromStack" value="5F"/>
		<operation name="PushAllRegistersToStack" value="60"/>
		<operation name="PullAllRegistersFromStack" value="61"/>
		<operation name="CheckBoundaries" value="62"/>
		<operation name="AdjustPrivilegeLevel" value="63"/>
		<operation name="PushImmediateToStack" value="68"/>
		<operation name="SetRegisterToOperandMultipliedByImmediateSigned" value="69"/>
		<operation name="PushImmediateToStack8" value="6A"/>
		<operation name="SetRegisterToOperandMultipliedByImmediateSigned8" value="6B"/>
		<operation name="ReadFromDXPortToDIAddressAndIncrementDI8" value="6C"/>
		<operation name="ReadFromDXPortToDIAddressAndIncrementDI" value="6D"/>
		<operation name="WriteSIAddressToDXPortAndIncrementSI8" value="6E"/>
		<operation name="WriteSIAddressToDXPortAndIncrementSI" value="6F"/>
		<operation name="BranchToRelativeIfOverflow8" value="70"/>
		<operation name="BranchToRelativeIfNotOverflow8" value="71"/>
		<operation name="BranchToRelativeIfBelow8" value="72"/>
		<operation name="BranchToRelativeIfNotAboveOrEqual8" value="72"/>
		<operation name="BranchToRelativeIfCarry8" value="72"/>
		<operation name="BranchToRelativeIfAboveOrEqual8" value="73"/>
		<operation name="BranchToRelativeIfNotBelow8" value="73"/>
		<operation name="BranchToRelativeIfNotCarry8" value="73"/>
		<operation name="BranchToRelativeIfZero8" value="74"/>
		<operation name="BranchToRelativeIfEqual8" value="74"/>
		<operation name="BranchToRelativeIfNotZero8" value="75"/>
		<operation name="BranchToRelativeIfNotEqual8" value="75"/>
		<operation name="BranchToRelativeIfBelowOrEqual8" value="76"/>
		<operation name="BranchToRelativeIfNotAbove8" value="76"/>
		<operation name="BranchToRelativeIfAbove8" value="77"/>
		<operation name="BranchToRelativeIfNotBelowOrEqual8" value="77"/>
		<operation name="BranchToRelativeIfNegative8" value="78"/>
		<operation name="BranchToRelativeIfPositive8" value="79"/>
		<operation name="BranchToRelativeIfEven8" value="7A"/>
		<operation name="BranchToRelativeIfOdd8" value="7B"/>
		<operation name="BranchToRelativeIfLess8" value="7C"/>
		<operation name="BranchToRelativeIfNotGreaterOrEqual8" value="7C"/>
		<operation name="BranchToRelativeIfNotLess8" value="7D"/>
		<operation name="BranchToRelativeIfGreaterOrEqual8" value="7D"/>
		<operation name="BranchToRelativeIfLessOrEqual8" value="7E"/>
		<operation name="BranchToRelativeIfNotGreater8" value="7E"/>
		<operation name="BranchToRelativeIfNotLessOrEqual8" value="7F"/>
		<operation name="BranchToRelativeIfGreater8" value="7F"/>
		<operation name="TestOperandWithRegister8" value="84"/>
		<operation name="TestOperandWithRegister" value="85"/>
		<operation name="ExchangeOperandWithRegister8" value="86"/>
		<operation name="ExchangeOperandWithRegister" value="87"/>
		<operation name="CopyRegisterToOperand8" value="88"/>
		<operation name="CopyRegisterToOperand" value="89"/>
		<operation name="CopyOperandToRegister8" value="8A"/>
		<operation name="CopyOperandToRegister" value="8B"/>
		<operation name="CopySegmentRegisterToOperand" value="8C"/>
		<operation name="SetRegisterToEffectiveAddress" value="8D"/>
		<operation name="CopyOperandToSegmentRegister" value="8E"/>
		<operation name="NoOperation" value="90"/>
		<operation name="ExchangeCXWithAX" value="91"/>
		<operation name="ExchangeDXWithAX" value="92"/>
		<operation name="ExchangeBXWithAX" value="93"/>
		<operation name="ExchangeSPWithAX" value="94"/>
		<operation name="ExchangeBPWithAX" value="95"/>
		<operation name="ExchangeSIWithAX" value="96"/>
		<operation name="ExchangeDIWithAX" value="97"/>
		<operation name="ExpandALToAX" value="98"/>
		<operation name="ExpandAXToDXAX" value="99"/>
		<operation name="CallImmediatePointer" value="9A"/>
		<operation name="HandleFloatingPointExceptions" value="9B"/>
		<operation name="PushFlagsToStack" value="9C"/>
		<operation name="PullFlagsFromStack" value="9D"/>
		<operation name="CopyAHToFlags" value="9E"/>
		<operation name="CopyFlagsToAH" value="9F"/>
		<operation name="CopyAbsoluteMemoryToAL" value="A0"/>
		<operation name="CopyAbsoluteMemoryToAX" value="A1"/>
		<operation name="CopyALToAbsoluteMemory" value="A2"/>
		<operation name="CopyAXToAbsoluteMemory" value="A3"/>
		<operation name="CopySIAddressToDIAddressAndIncrementSIAndDI8" value="A4"/>
		<operation name="CopySIAddressToDIAddressAndIncrementSIAndDI" value="A5"/>
		<operation name="CompareSIAddressToDIAddressAndIncrementSIAndDI8" value="A6"/>
		<operation name="CompareSIAddressToDIAddressAndIncrementSIAndDI" value="A7"/>
		<operation name="TestALWithImmediate" value="A8"/>
		<operation name="TestAXWithImmediate" value="A9"/>
		<operation name="CopyALToDIAddressAndIncrementDI" value="AA"/>
		<operation name="CopyAXToDIAddressAndIncrementDI" value="AB"/>
		<operation name="CopySIAddressToALAndIncrementSI" value="AC"/>
		<operation name="CopySIAddressToAXAndIncrementSI" value="AD"/>
		<operation name="CompareALToDIAddressAndIncrementDI" value="AE"/>
		<operation name="CompareAXToDIAddressAndIncrementDI" value="AF"/>
		<operation name="CopyImmediateToAL" value="B0"/>
		<operation name="CopyImmediateToCL" value="B1"/>
		<operation name="CopyImmediateToDL" value="B2"/>
		<operation name="CopyImmediateToBL" value="B3"/>
		<operation name="CopyImmediateToAH" value="B4"/>
		<operation name="CopyImmediateToCH" value="B5"/>
		<operation name="CopyImmediateToDH" value="B6"/>
		<operation name="CopyImmediateToBH" value="B7"/>
		<operation name="CopyImmediateToAX" value="B8"/>
		<operation name="CopyImmediateToCX" value="B9"/>
		<operation name="CopyImmediateToDX" value="BA"/>
		<operation name="CopyImmediateToBX" value="BB"/>
		<operation name="CopyImmediateToSP" value="BC"/>
		<operation name="CopyImmediateToBP" value="BD"/>
		<operation name="CopyImmediateToSI" value="BE"/>
		<operation name="CopyImmediateToDI" value="BF"/>
		<operation name="ReturnToNearCallerAndPullImmediate" value="C2"/>
		<operation name="ReturnToNearCaller" value="C3"/>
		<operation name="SetESAndRegisterToFarPointer" value="C4"/>
		<operation name="SetDSAndRegisterToFarPointer" value="C5"/>
		<operation name="EnterStackFrame" value="C8"/>
		<operation name="LeaveStackFrame" value="C9"/>
		<operation name="ReturnToFarCallerAndPullImmediateFromStack" value="CA"/>
		<operation name="ReturnToFarCaller" value="CB"/>
		<operation name="CallDebuggerInterrupt" value="CC"/>
		<operation name="CallImmediate8Interrupt" value="CD"/>
		<operation name="CallInterruptIfOverflow" value="CE"/>
		<operation name="ReturnFromInterrupt" value="CF"/>
		<operation name="AdjustAXAfterMultiplyToBaseImmediate8" value="D4"/>
		<operation name="AdjustAXBeforeDivideToBaseImmediate8" value="D5"/>
		<operation name="CopyBXAddressPlusALToAL" value="D7"/>
		<operation name="LoopToRelativeWhileNotEqual8" value="E0"/>
		<operation name="LoopToRelativeWhileNotZero8" value="E0"/>
		<operation name="LoopToRelativeWhileEqual8" value="E1"/>
		<operation name="LoopToRelativeWhileZero8" value="E1"/>
		<operation name="LoopToRelative8" value="E2"/>
		<operation name="BranchToRelativeIfCXIsZero" value="E3"/>
		<operation name="ReadFromImmediate8PortToAL" value="E4"/>
		<operation name="ReadFromImmediate8PortToAX" value="E5"/>
		<operation name="WriteALToImmediate8Port" value="E6"/>
		<operation name="WriteAXToImmediate8Port" value="E7"/>
		<operation name="CallRelative" value="E8"/>
		<operation name="JumpToRelative" value="E9"/>
		<operation name="JumpToImmediatePointer" value="EA"/>
		<operation name="JumpToRelative8" value="EB"/>
		<operation name="ReadFromDXPortToAL" value="EC"/>
		<operation name="ReadFromDXPortToAX" value="ED"/>
		<operation name="WriteALToDXPort" value="EE"/>
		<operation name="WriteAXToDXPort" value="EF"/>
		<operation name="WaitForInterrupt" value="F4"/>
		<operation name="ComplementCarryFlag" value="F5"/>
		<operation name="ClearCarryFlag" value="F8"/>
		<operation name="SetCarryFlag" value="F9"/>
		<operation name="ClearInterruptFlag" value="FA"/>
		<operation name="SetInterruptFlag" value="FB"/>
		<operation name="ClearDirectionFlag" value="FC"/>
		<operation name="SetDirectionFlag" value="FD"/>
		
		<!--Prefix Operators-->
		<operation name="SegmentES" value="26"/>
		<operation name="SegmentSS" value="36"/>
		<operation name="SegmentCS" value="2E"/>
		<operation name="SegmentDS" value="3E"/>
		<operation name="Operand32" value="66"/>
		<operation name="Operand16" value="66"/>
		<operation name="Address32" value="67"/>
		<operation name="Address16" value="67"/>
		<operation name="ExclusiveLock" value="F0"/>
		<operation name="RepeatWhileNotEqual" value="F2"/>
		<operation name="Repeat" value="F3"/>
		<operation name="RepeatWhileEqual" value="F3"/>

		<!--Extended Operations-->
		<operation name="ExtendedOperator" value="0F"/>
		
		<operation name="MathImmediateToOperandFunction8" value="80"/>
		<operation name="MathImmediateToOperandFunction" value="81"/>
		<operation name="MathImmediate8ToOperandFunction" value="83"/>

		<operation name="ArithmeticAXOperandFunction" value="F6"/>
		<operation name="ArithmeticDXAXOperandFunction" value="F7"/>
		
		<operation name="ShiftRegisterByImmediateFunction8" value="C0"/>
		<operation name="ShiftRegisterByImmediate8Function" value="C1"/>
		<operation name="ShiftRegisterByOneFunction8" value="D0"/>
		<operation name="ShiftRegisterByOneFunction" value="D1"/>
		<operation name="ShiftRegisterByCLFunction8" value="D2"/>
		<operation name="ShiftRegisterByCLFunction" value="D3"/>
		
		<operation name="CopyImmediateToOperandFunction8" value="C6"/>
		<operation name="CopyImmediateToOperandFunction" value="C7"/>

		<operation name="PullOperandFromStackFunction" value="8F"/>

		<operation name="IncrementFunction8" value="FE"/>
		<operation name="IncrementFunction" value="FF"/>

		<operation name="LogicFunction" value="FF"/>
	</processor>
</platform>